package com.wunong.smart.collection.repository;

import com.wunong.smart.collection.client.query.CollectionQueryDTO;
import com.wunong.smart.collection.domain.model.CollectionDomain;
import com.wunong.smart.domain.platform.common.BizSource;

import java.util.List;

/**
 * @author create by zealot.zt
 */
public interface CollectionRepository {

    Long save(CollectionDomain domain);

    void update(CollectionDomain domain);

    CollectionDomain getById(Long id);

    CollectionDomain getById(Long userId, Long id);

    /**
     * 根据业务信息查询收藏内容
     *
     * @param source 业务信息
     * @return
     */
    List<CollectionDomain> queryByBiz(BizSource source);

    /**
     * 根据业务信息查询收藏内容
     *
     * @param userId 用户编号
     * @param source
     * @return
     */
    CollectionDomain getByUserIdAndBiz(Long userId, BizSource source);

    /**
     * 批量查询收藏信息
     *
     * @param queryDTO
     * @return
     */
    List<CollectionDomain> query(CollectionQueryDTO queryDTO);

}
